package downloadopds.model;

/**
 * Classe définissant les données de téléchargement d'un catalogue OPDS
 * @author silfa
 */
public class CatalogueOpds {

    //Constantes
    public static final int CATALOGUE = 0;
    public static final int CATEGORIE = 1;
    public static final int COLLECTION = 2;

    /**
     * Répertoire de destination des ebooks telecharges
     */
    private String dirDest;

    /**
     * Index html de la dropbox du catalogue opds
     */
    private String index;

    /**
     * Nombre total de pages à parser pour le téléchargement
     */
    private int nbPages;

    /**
     * La page cible à télécharger en html
     */
    private String pageCible;

    /**
     * Constructeur du catalogue OPDS
     * @param _index L'index html du catalogue Opds
     * @param _type Le type de téléchargement
     * @param _pageCible Si le type n'est pas l'ensemble du catalogue, son adresse
     * @param _destination Le répertoire de destination du téléchargement
     */
    public CatalogueOpds(String _index, int _type, String _pageCible, String _destination){
        this.index = _index.replace("https", "http").replace(".xml", ".html");
        this.index = this.index.substring(0, this.index.length()-(this.index.length()-this.index.lastIndexOf("/")-1));
        this.dirDest = _destination;

        //Suivant le type de téléchargement, nous construisons l'adresse de la page cible
        switch(_type){
            case CATALOGUE:
                this.pageCible = "82267917/82267917_books.html";
                break;
            case CATEGORIE:
                this.pageCible = "tag/tag_" + _pageCible + ".html";
                break;
            case COLLECTION:
                this.pageCible = "serie/serie_" + _pageCible + ".html";
                break;
            default:
                break;
        }
    }

    /**
     * @return Le répertoire de destination du téléchargement
     */
    public String getDirDest() {
        return dirDest;
    }

    /**
     * @return the index
     */
    public String getIndex() {
        return index;
    }

    /**
     * @return the nbPages
     */
    public int getNbPages() {
        return nbPages;
    }

    /**
     * @param nbPages the nbPages to set
     */
    public void setNbPages(int nbPages) {
        this.nbPages = nbPages;
    }

    /**
     * @return the pageCible
     */
    public String getPageCible() {
        return pageCible;
    }

}
